package com.joinway.framework.extension.console.pdf;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

public class PDFFile {

	private File file;
	
	private String creator;
	
	private String title;
	
	private String producer;
	
	private String author;
	
	private Date modifyDate;
	
	private Date createDate;
	
	private List<Paragraph> paragraphs;
	
	private List<Paragraph> plainParagraphs;
	
	private int totalPageNumber;
	
	protected PDFFile(File file){
		this.file = file;
	}
	
	@Override
	public String toString() {
		return new ReflectionToStringBuilder(this, getToStringStyle()).toString();
	}

	protected ToStringStyle getToStringStyle(){
		return ToStringStyle.MULTI_LINE_STYLE;
	}
	
	protected void setTotalPageNumber(int totalPageNumber){
		this.totalPageNumber = totalPageNumber;
	}
	
	public int getTotalPageNumber(){
		return totalPageNumber;
	}

	public File getFile() {
		return file;
	}

	public void setFile(File file) {
		this.file = file;
	}

	public String getCreator() {
		return creator;
	}

	public void setCreator(String creator) {
		this.creator = creator;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getProducer() {
		return producer;
	}

	public void setProducer(String producer) {
		this.producer = producer;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public Date getModifyDate() {
		return modifyDate;
	}

	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public List<Paragraph> getParagraphs() {
		return paragraphs;
	}

	public void setParagraphs(List<Paragraph> paragraphs) {
		this.paragraphs = paragraphs;
	}

	public List<Paragraph> getPlainParagraphs() {
		return plainParagraphs;
	}

	public void setPlainParagraphs(List<Paragraph> plainParagraphs) {
		this.plainParagraphs = plainParagraphs;
	}
	
}

